home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magic Disk 64
/
Magic_Disk_64_95-09_1995_-_de_Side_B.d64
/
sprite-source #5
< prev
next >
Wrap
Text File
|
2023-02-26
|
5KB
|
302 lines
;---------------------------------------
;
; - S P R I T E S -
;
; Source-File #5:
;
; 'Kollissions-Abfrage'
;
; by Hannes Sommer
;
; (c) 1993 CP-Verlag Gmbh
;
;---------------------------------------
v = 53248
*= $0810
jmp $0880
*= $0840
.byte 0,255,0,3,255,192
.byte 15,255,240,31,255,248
.byte 63,255,252,63,255,252
.byte 127,189,254,127,189,254
.byte 255,189,255,255,255,255
.byte 255,255,255,247,255,239
.byte 251,255,223,124,126,62
.byte 127,129,254,63,255,252
.byte 63,255,252,31,255,248
.byte 15,255,240,3,255,192
.byte 0,255,0,0
lda #255 ;Initialisierung!
sta v+21
sei
lda #<irq
sta $0314
lda #>irq
sta $0315
lda #129
sta $d01a
lda #27
sta $d011
lda #250
sta $d012
cli
ldx #0
i1 lda text,x
beq i2
jsr $ffd2
inx
bne i1
i2
end rts
text .byte 13,18
.text "joystick-abfrage im "
.text "irq aktiviert."
.byte 146,13,13,0
;---------------------------------------
; I R Q
;---------------------------------------
irq lda $d019
sta $d019
bmi t1
lda $dc0d
cli
jmp $ea31
t1
lda $dc00 ;Joystick!
sta joyst
and #1 ;up ?
bne t5
lda ypoint
cmp #1
beq t10
dec ypoint
jmp t10
t5 lda joyst
and #2 ;down ?
bne t8
lda ypoint
cmp #31
beq t10
inc ypoint
bne t10
t8 lda #0 ;Y-Bremse...
inc t8+1
and #1
bne t10
lda ypoint
cmp #16
beq t10
bcc t9
dec ypoint
bne t10
t9 inc ypoint
t10
lda joyst
and #4 ;left ?
bne t15
lda xpoint
cmp #1
beq t20
dec xpoint
jmp t20
t15 lda joyst
and #8 ;right ?
bne t18
lda xpoint
cmp #31
beq t20
inc xpoint
bne t20
t18 lda #0 ;X-Bremse...
inc t18+1
and #1
bne t20
lda xpoint
cmp #16
beq t20
bcc t19
dec xpoint
bne t20
t19 inc xpoint
t20
lda ypoint ;Y-moving !
clc
adc #1
lsr a
lsr a
tax
lda y
clc
adc speedtab,x
sta y
cmp #50
bcs t21
lda #50
sta y
lda ypoint
eor #31
clc
adc #2
sta ypoint
jmp t25
t21 cmp #230
bcc t25
lda #230
sta y
lda ypoint
and #254
eor #31
sta ypoint
t25
lda xpoint ;X-moving !
clc
adc #1
lsr a
lsr a
tax
cpx #4
bcs t35
lda x
clc
adc speedtab,x
sta x
bcs t31
lda #0
sta xhi
t31
lda xhi
bne t40
lda x
cmp #24
bcs t40
lda #24
sta x
lda xpoint
eor #31
clc
adc #2
sta xpoint
jmp t40
t35 lda x
clc
adc speedtab,x
sta x
bcc t36
lda #1
sta xhi
t36 lda xhi
beq t40
lda x
cmp #63
bcc t40
lda #64
sta x
lda xpoint
and #254
eor #31
sta xpoint
t40
lda #0
sta v+16
ldx #7
t41 lda y,x
ldy mal2,x
sta v+1,y
lda col,x
sta v+39,x
lda #33
sta 2040,x
lda x,x
sta v,y
lsr a
ldy xhi,x
beq t42
pha
lda v+16
ora oder,x
sta v+16
pla
ora #128
t42 sta xhalf,x
dex
bpl t41
lda #0
sta t60+1
sta $d021
lda v+30
and #1
beq t56
ldx #6
t50 lda xhalf+1,x
sec
sbc #12
cmp xhalf
bcs t55
adc #23
cmp xhalf
bcc t55
lda y+1,x
sec
sbc #21
cmp y
bcs t55
adc #41
cmp y
bcc t55
lda col+1,x
sta t60+1
t55 dex
bpl t50
t56
lda #52
t59 cmp $d012
bcs t59
t60 lda #0
sta $d020
jmp $ea81
joyst .byte 0
xpoint .byte 16
ypoint .byte 16
speedtab .byte 252,253,254,255,0
.byte 1,2,3,4
mal2 .byte 0,2,4,6,8,10,12,14
x .byte 160,140,40,200
.byte 110,40,170,70
y .byte 140,50,80,100
.byte 110,150,180,220
col .byte 7,10,6,3,5,8,4,13
xhi .byte 0,0,0,0,0,1,0,0
xhalf .byte 0,0,0,0,0,0,0,0
oder .byte 1,2,4,8,16,32,64,128